package fr.umlv.jee.jawp.persistence.dao;

import java.util.List;

import fr.umlv.jee.jawp.persistence.object.Category;

public interface ICategoryDAO {

	/*************************************
	 * Creation
	 *************************************/

	public Category createNewCategory(String name, int motherCategoryId);

	public Category createNewCategory(String name);

	/*************************************
	 * Getter
	 *************************************/

	public List<Category> getCategories();

	public List<Category> getCategoriesByMotherId(int motherCategoryId);

	public List<Category> getCategoriesByMotherId();

	public Category getCategoriesById(int id);

	public Category getCategoryByNameAndMotherCategory(String name, int categoryId);

	public Category getCategoryByNameAndMotherCategory(String name);

	public String getCategoryTreeStructure(Category category);

	/*************************************
	 * Setter
	 *************************************/

	public void saveCategory(Category category);

	public void saveCategories(List<Category> categories);

	/*************************************
	 * Deletion
	 *************************************/

	public void deleteCategory(int id);

	public void clearDB();

}